------------------------------------------------------------------------------
                             RF550 Encoder
                              Version 1.1
                    (C) 2026 Giuseppe Perotti, I1EPJ
------------------------------------------------------------------------------
                              USER MANUAL
------------------------------------------------------------------------------

Commands available from the front panel:
------------------------------------------------------------------------------

Encoder knob: rotate to set the value of the selected parameter
                     (VFO frequency or memory number).

Encoder knob switch (press knob to activate):

    VFO mode (cursor in the display FREQ: line)
    --------------------------------------------------------------------------
    short press    : change the frequency digit to be modified;
    medium press   : change mode to memory;
    long press     : copy the VFO frequency in the currently selected memory;
    very long press: toggle LCD backlight.

    Memory mode (cursor in the display Mnnn: line)
    --------------------------------------------------------------------------
    short press    : change the memory digit to be modified;
    medium press   : change mode to VFO;
    long press     : copy the currently selected memory frequency to VFO;
    very long press: toggle LCD backlight.

    Short press means pressing the knob for less than 1s.
    Medium press means pressing the knob for more that 1s but less than 2s.
    Long press means pressing the knob for more that 2s but less than 4s.
    Very long press means pressing the knob for more that 4s.

    To ease knob press time evaluation, a growing block indicator is shown at
    left of the frequency value. If it is ▁, then this will be a short press.
    If it is ▅, then this will be a medium press. If it is ▇, this will be
    a long press. Lastly, if a B appears, this will be a very long press
    (backlight toggle). Release the knob when the desired time has elapsed.

    In memory mode 1000 memories are available, numbered from 0 to 999.

    BACKLIGHT WARNING: At least on the LCD I used, the backlight adds
    some 80mA to the supply current, which without backlight is about 120mA.
    Remember that the encoder is powered by the receiver-supplied +15V
    which is rated for 200mA maximum.


Available serial commands (from the Arduino USB interface):
------------------------------------------------------------------------------
B[<n>]         Set/Get blinking cursor status: <n>=0 OFF <n>=1 ON.
C              Copy current memory frequency to VFO and go to VFO mode.
EEE            Init EEPROM (three uppercase E required).
F[<fr>]        Set/Get VFO frequency.
H              Show this help text.
I              Show program info and license.
L[<n>]         Set/Get backlight: <n>=0 OFF <n>=1 ON.
M[<nnn>]       Show current/Recall memory <nnn> and go to memory mode.
O              Save options in EEPROM.
U[<n>]         Set/Get numeric format: <n>=0 ITA, <n>=1 USA.
R              Returns RRR:<version>. Used by RF550Control to check encoder.
S              Returns current status.
T              If compiled in (default: no), performs an output bits test.
X[<m>]         Set VFO/Memory mode: <m>=V VFO, <m>=M Memory.
W<mnum>[:<f>]  Write current VFO frequency/frequency <f> to memory mnum.
Z[<n>]         Set/Get non-significant zero suppression: <n>=0 OFF <n>=1 ON.

If a command is issued without the optional parameter, shows current value.
To avoid unwanted deletions, the command to reinitialize the EEPROM must be
issued in UPPER CASE and repeated exactly three times, so it is required to
type EEE, any other form (e.g. eee, EEEE, EE, E, etc.) triggers an error.

Commands have a 5s timeout, after which a CR is implicitly assumed, so
if you type, say, F, and then stop typing, after 5s the F command is executed.

A PC GUI control program (RF550Control) is also available. You can find both
Linux and Windows 64 bits executables along with the source code for Lazarus
in the RF550Control.zip archive.
